package com.shujia.wyh.day12;

import java.io.*;

/*
    字符流：
        输入流：Reader
            字符缓冲输入流：是Reader抽象类的具体子类：BufferedReader
        输出流：Writer
            字符缓冲输出流：是Writer抽象类的具体子类：BufferedWriter
 */
public class BufferedWriterDemo1 {
    public static void main(String[] args) throws IOException {
        //需求：复制g.txt到D:\\g3.txt
        //创建输入流对象
//        FileReader fr = new FileReader("java/src/com/shujia/wyh/day12/g.txt");
        //创建字符缓冲输入流对象
        //BufferedReader(Reader in)
        //创建使用默认大小的输入缓冲区的缓冲字符输入流。
//        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("java/src/com/shujia/wyh/day12/g.txt")));
        BufferedReader br = new BufferedReader(new FileReader("java/src/com/shujia/wyh/day12/g.txt"));

        //创建字符缓冲输出流对象
        //BufferedWriter(Writer out)
        //创建使用默认大小的输出缓冲区的缓冲字符输出流。
//        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\g3.txt")));
        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\g6.txt"));


        //一次读写一个字符
//        int i = 0;
//        while ((i=br.read())!=-1){
//            bw.write(i);
//            bw.flush();
//        }

        //一次读写一个字符数组
//        char[] chars = new char[1024];
//        int length = 0;
//        while ((length=br.read(chars))!=-1){
//            bw.write(chars,0,length);
//            bw.flush();
//        }

        //字符缓冲输入流中有一个特殊方法：可以一次读取一行、
//        System.out.println(br.readLine());
//        System.out.println(br.readLine());
//        System.out.println(br.readLine());
//        System.out.println(br.readLine());
        String line = null;
        //readLine()方法不会读取换行符
        while ((line = br.readLine()) != null) {
            bw.write(line);
//            bw.write("\r\n");
            bw.newLine(); //根据系统的不一样，生成换行符
            bw.flush();
        }

        //释放资源
        bw.close();
        br.close();
    }
}
